#include "user_main.h"
#include "gpio.h"
#include "user_can.h"
#include "AX58100hw.h"
#include "applinterface.h"
/*
 * 函数  : UserMain
 * 描述  : 用户主函数
 * 输入  :
 * 输出  :
 */
uint16_t toggle_led = 0;
uint16_t test_value = 0;

void LL_IT_Enble(void)
{
    LL_TIM_EnableCounter(TIM4);
    LL_TIM_EnableIT_UPDATE(TIM4);
    test_value += LL_EXTI_IsEnabledIT_0_31(LL_EXTI_LINE_0);
    test_value += LL_EXTI_IsEnabledIT_0_31(LL_EXTI_LINE_1) << 6;
    test_value += LL_EXTI_IsEnabledIT_0_31(LL_EXTI_LINE_2) << 7;
    test_value += LL_EXTI_IsEnabledIT_0_31(LL_EXTI_LINE_3) << 8;

}

extern FDCAN_HandleTypeDef hfdcan1;
extern FDCAN_HandleTypeDef hfdcan2;
extern FDCAN_HandleTypeDef hfdcan3;

void UserMain(void)
{
    
    NVIC_EnableIRQ(TIM4_IRQn); 
    NVIC_EnableIRQ(TIM3_IRQn);     
    
    LL_TIM_ClearFlag_UPDATE(TIM3);
    LL_TIM_EnableIT_UPDATE(TIM3);
    LL_TIM_DisableCounter(TIM3); 
   
    LL_SPI_Enable(SPI2);
    LL_SYSTICK_EnableIT();
    

    
    
//    sendf(&hfdcan3,1);
//    recvf(&hfdcan3,1);
    
//    LL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
//    LL_mDelay(500);
    
        HW_Init();

        LL_IT_Enble();
        MainInit(); 

        //LL_TIM4_Enable();
         bRunApplication = TRUE; 
        do  
        { 
            MainLoop();
            toggle_led++;
            if (toggle_led > 6000) {
            toggle_led = 0;
            LL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
            }
         }  while (bRunApplication == TRUE);   

         HW_Release();
 


//    LL_SPI_Enable(SPI2);
//    LL_SYSTICK_EnableIT(); // 1ms中断 用于
//    
//    UartInit();
//    COM_Init();
//	
//    uint16_t toggle_led = 0;
//	if(LL_GPIO_IsInputPinSet(CAN_IN_GPIO_Port, CAN_IN_Pin) == RESET)
//	{
//		CAN_Start();  
//		can_flag=1;
//	}
//    /* initialize the Hardware and the EtherCAT Slave Controller */

//    if(HW_Init())
//    {
//        HW_Release();
//        goto LOOP;
//    }
//    LL_IT_Enble();

//    MainInit();

//	LL_TIM3_Enable();
//		
//    bRunApplication = TRUE; 
//    do
//    {
//        MainLoop();
//        toggle_led++;
//        if (toggle_led > 2000) {
//            toggle_led = 0;
//            LL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
//        }
//        
//    } while (bRunApplication == TRUE);

//    HW_Release();


//    LOOP:
//    while (1) {
//        LL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
//        LL_mDelay(500);
//    }

}



